﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Anim : MonoBehaviour
{
    public bool IsPlay;
    public float animSpeed = 10;  //动画播放速度 默认1秒播放10帧图片
    private float animTimeInterval = 0;  //帧与帧间隔的时间

     Image animRenderer;//动画载体的渲染器
    public string PreName;
    public Sprite[] SpriteArray; //序列帧数组
    private int frameIndex = 0;  //帧索引
    private int animLength = 0;  //多少帧
    private float animTimer = 0; //动画时间计时器

    // Use this for initialization
    void Start()
    {
        if(SpriteArray.Length==0)
        SpriteArray = Resources.LoadAll<Sprite>("Anims/" + PreName);
        animRenderer = GetComponent<Image>();
        if(SpriteArray.Length!=0)
        animRenderer.sprite = SpriteArray[0];
        animTimeInterval = 1 / animSpeed;//得到每一帧的时间间隔
        animLength = SpriteArray.Length; //得到帧数

    }

    // Update is called once per frame
    void Update()
    {
        if (!IsPlay)
            return;
        animTimer += Time.deltaTime;
        if (animTimer > animTimeInterval)
        {
            animTimer -= animTimeInterval;//当计时器减去一个周期的时间
            frameIndex++;//当帧数自增（播放下一帧）
            frameIndex %= animLength;//判断是否到达最大帧数，到了就从新开始  这里是循环播放的
            animRenderer.sprite = SpriteArray[frameIndex]; //替换图片实现动画
        }

    }
}